●zmc3ってなに? Z-MUSIC(V3)対応の、ZMS→ZMDコンパイラです。Z-MUSICをご存じでない 方のために説明すると、Z-MUSICとは西川善司氏によって作成されたMML系の X680x0用内蔵音源/MIDI音源制御ツールであり、ZMSファイルというのはMMLを 記述するテキストファイルのことで、ZMDファイルとはZMSファイルをZ-MUSICの 内部形式に変換したものです。 X680x0上(zmc3.x), Windows95/NT4のDOS窓の中(zmc3.exe), Linux,FreeBSD, SunOS4.1.x, Solaris(UltraSPARC) での動作確認がなされており、これを 用いてZ-MUSICのMIDI音源制御部分相当のMMLを利用できます。 これとz2m3(拙作,ZMD→MIDコンバータ)を併用することで、X680x0以外の 環境での、Z-MUSICによる最低限の音楽データ作成が実現出来ます。 エディタやプレーヤなど、環境の肉付けは各自で自由にしてみて下さい。 Windowsな方にはMASAさん(http://www.asahi-net.or.jp/‾aa4m-shr/)に よるZEDITが、Mule使いな方には我孫子さん (http://www.ddna.is.tsukuba.ac.jp/‾wabi/)によるzmusic-mode.el が 便利でしょう。 ●使用法 zmc3 [各種スイッチ] [入力ファイル[.zms]] [-o 出力ファイル[.zmd]] というスタイルで用います。[..]内は省略出来ます。 通常の使い方としては、 1. sample.zms を用意しておいて、 2. zmc2 sample とすれば、 3. sample.zmd が作成出来ます。 以下スイッチの説明です。複数のスイッチを同時に指定する場合には -w2 -c とバラで指定しても、-w2c とまとめて指定しても構いません。 -Wnum zms→zmd変換時に表示される警告(warning)レベルを 指定します。 -w1 警告は一切表示しません(エラーのみ表示)。 -w2 Z-MUSIC V2レベルの警告を表示します。 (zmc3では意味なしのような気もします) -w3 -w2 の内容に加えて、Z-MUSIC V3レベルの 警告を表示します。 例えば、c<& というMMLは、-w3(か-w4)な時 のみ警告を表示します。 -w4 -w3 の内容に加えて、zmc3で新たに拡張された MMLを使用すると警告を表示します。 指定する数字が大きくなるほど、より細かい警告が 表示されるようになります。 デフォルトでは -w3 が指定されています。(デフォルト 値はmakefileでコンパイル時に指定可能) -o ファイル名 出力ファイル(zmd)の名前を指定します。この指定を 省略すると、入力ファイルの拡張子をzmdに変更した物を 用います。なお、指定法は -o ファイル名 と -oファイル名、 どちらでも構いません。 例 zmc3 sample -o sample2.zmd → sample.zmsを変換して sample2.zmdを出力します。 -e ファイル名 エラー表示をファイルにリダイレクトします。他のシステム からzmc3を利用する場合に便利です。 - -c - を指定すると、入力ファイルの代わりに標準入力を 用います。-c を指定すると、出力に標準出力を用います。 例 cat sample.zms | zmc3 - -o sample.zmd cat sample.zms | zmc3 - -c | z2m3 - -c > sample.mid -l warning/errorの出力フォーマットを変更します。指定が ないと行数のみ表示しますが、指定があると行数と項数 (列?)も表示します。 例 -l未指定時 test.zms 26: Error: SYNTAX ERROR. "c4eg,,,64",12 ^ -l指定時 test.zms L26C8: Error: SYNTAX ERROR. "c4eg,,,64",12 ^ -h ヘルプメッセージを表示します。引数なしで zmc3を 起動しても同じです。 ●実装済MML そのうち書きます。試してみてエラーになるようなら使えないと 思ってください(^_^; ●内蔵音源サポートについて コンパイルは通るかも知れませんが、多分動作しません。。。 ●制限 ・連符中にループ、ジャンプ系の命令([coda]とか)を使えない ●MMLの拡張 zmc3では、Z-MUSICで規定されているzmsフォーマットに加えて便利な 独自の拡張をいくつかサポートしています。詳しくはzmc3ext.txt をご覧下さい。 ●配布制限 一切ありません。いわゆるPDSとして見なして頂いて構いません。 配布、改変、商的利用その他すべて私への断りなしで勝手に行って頂いて 結構です。 ●謝辞 ・初期バージョンからデバッグに協力していただいた おいもさん ・SunOS4.1.x, FreeBSDでの動作確認をしていただき、 各種差分を提供して頂いた 田中さん ・Solaris(UltraSPARC), Linuxでの動作確認をしていただき、各種 差分を提供していただき、バグ報告や機能提案を頂いた 我孫子さん ・当方で再現出来ないエラーのデバッグに協力して下さった 内海さん ・バグ報告並びに各種XG関連機能提案をいただいた muteさん ・FM-TOWNSでの動作確認をしていただき、バグ報告ならびに内蔵音源 部などの実装をしていただいたMamiyaさん どうもありがとうございます。 -- やぎ。 E-mail: yyagi@muc.biglobe.ne.jp (ほぼ毎日確認) web: http://www2s.biglobe.ne.jp/‾yyagi/